package cn.tedu.oop;
/**本类用于测试方法的重写*/
public class TestExtends {
    public static void main(String[] args) {
        Father f = new Father();
        Son s = new Son();
        f.eat();
        f.play();
        s.eat();
        s.play();
    }
}
class Father{
    public void eat(){
        System.out.println("爸爸爱吃肉");
    }
    public void play(){
        System.out.println("爸爸爱放风筝");
    }
}
class Son extends Father{
    /**继承后，如果子类对父类的方法不满意，可以重写父类的方法
     * 重写的规则:两同 两小 一大
     * 一大:子类的方法的修饰符 >= 父类的方法的修饰权限
     * 两同:子类方法的方法名与参数列表必须与父类方法保持一致
     * 两小:子类方法的返回值类型必须与父类方法的返回值类型一致，或者是其子类
     * 比如:父void  子void   父Animal   子Cat  都是可以的*/
    @Override /**注解，用来标记这是一个重写的方法*/
    public void eat(){
        System.out.println("儿子爱蔬菜");
    }
    @Override
    public void play(){
        System.out.println("儿子爱玩电子游戏");
    }
//    @Override //报错，只有重写的方法才可以加此注解
    public void dance(){
        System.out.println("儿子爱蹦迪");
    }
}
